home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / taropyon / silib / inc / siidl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-16  |  2.0 KB  |  65 lines

  1. /*************************************************************************
  2. *    "siidl.h"
  3. *-------------------------------------------------------------------------
  4. *    Idling library
  5. *                                            Copyright (c) 1993, TaroPYON
  6. *************************************************************************/
  7.  
  8. #ifndef    _SIIDL_H
  9. #define    _SIIDL_H
  10.  
  11. #ifndef    _SIDEFS_H
  12. #    include    <sidefs.h>
  13. #endif
  14.  
  15. typedef struct _idl_t
  16. {
  17.     struct _idl_t    *next, *prev;
  18.     int                prio;            /* プライオリティ    */
  19.     unsigned int    att;            /* 属性                */
  20.     unsigned int    stt;            /* ステータス        */
  21.     unsigned int    clk, lastClk;    /* クロック            */
  22.     void            (*func)(struct _idl_t *idl,int,...);
  23.     void            *ptr;
  24.     char            name[128];        /* 名前                */
  25. } IDL_T;
  26.  
  27. typedef struct    /* アイドリング処理構造体    */
  28. {
  29.     unsigned int    stt;        /* ステータス    */
  30.     int                idlNum;        /* 登録数        */
  31.     IDL_T          *idlTop;
  32.     IDL_T          *idlLast;
  33. } IDLCTRL_T;
  34.  
  35. extern IDLCTRL_T    *SiIdlCt;
  36.  
  37. /*----------------------------------------------------------------------*/
  38. #define    IDLSTT_OFF        (0)
  39. #define    IDLSTT_ON        (1)
  40.  
  41. #define    IDLMODE_OPEN        (1)
  42. #define    IDLMODE_CLOSE        (2)
  43. #define    IDLMODE_START        (3)
  44. #define    IDLMODE_STOP        (4)
  45. #define    IDLMODE_PAUSE        (5)
  46. #define    IDLMODE_CONTINUE    (6)
  47. #define    IDLMODE_INT            (7)
  48.  
  49. /*----------------------------------------------------------------------*/
  50. extern int            IDL_init(void);
  51. extern void            IDL_term(void);
  52. extern IDLCTRL_T    *IDL_open(void);
  53. extern void            IDL_close( IDLCTRL_T *idlCt );
  54. extern int            IDL_link( IDLCTRL_T *idlCt, IDL_T *newIdl );
  55. extern IDL_T       *IDL_set( IDLCTRL_T *idlCt, int prio, unsigned int clk, void (*func)(IDL_T *,int,...), void *ptr, CONST char *name );
  56. extern int            IDL_unlink( IDLCTRL_T *idlCt, IDL_T *idl );
  57. extern int            IDL_unset( IDLCTRL_T *idlCt, IDL_T *idl );
  58. extern int            IDL_start( IDL_T *idl );
  59. extern int            IDL_stop( IDL_T *idl );
  60. extern int            IDL_continue( IDL_T *idl );
  61. extern void            IDL_int( IDLCTRL_T *idlCt );
  62. /*----------------------------------------------------------------------*/
  63.  
  64. #endif
  65.